Spread spectrum communication is advantageous in communication applications requiring high reliability in a noisy environment. In order to spread the spectrum, a high-speed pseudorandom noise (PRN) code is often used to modulate a narrow-band signal to generate a wide-band signal. To communicate data, the wide-band signal is modulated by a message data stream, referred to as navigation data. The message data rate is usually much lower than the PRN code rate.
A Global Positioning System (GPS) signal is a typical spread spectrum signal, broadcasted by the GPS satellites on L1, L2, and L5 carrier frequencies. Generally, in most current commercial GPS receivers, only L1 frequency (1575.42 MHz) is available. There are several signals broadcasted on the L1 carrier: coarse/acquisition code(C/A code), precision code (P code) and the navigation data. The detailed information of the satellite orbit is contained in the navigation data. The C/A code, which is a type of PRN code, is mainly used by civilian receivers for positioning purposes. A radio frequency signal coded by the C/A code becomes a spread spectrum signal. Each satellite has a unique C/A code and repeats the C/A code over and over again. The C/A code is a sequence of zeros and ones (binary). Each zero or one is known as a “chip”. The C/A code is 1023 chips long, and it is broadcasted at 1.023 Mega-chips per second, i.e., the repetition of the C/A code lasts 1 millisecond. It is also possible to regard each chip as having two states: +1 and −1.
A GPS receiver is used to receive the GPS signals transmitted from the GPS satellites. In general, a GPS receiver includes two parts: RF (radio frequency) front end module and a base-band signal processing module. In RF front end module, the GPS signals may be received from an antenna. Through a RF tuner and a frequency synthesizer, the GPS signal (a radio frequency signal) is converted to a signal with a desired output frequency. Then, an analog-to-digital converter (ADC) digitizes the converted signal at a predetermined sampling frequency. The converted and digitized signal is known as intermediate frequency (IF) signal. The IF signal is then sent to the base-band signal processing module, which includes several signal processing stages, such as acquisition, tracking, navigation data extraction and position calculation.
The acquisition module is directed to detect the presence of the signal, more specifically, to conduct Doppler frequency shift search and C/A code phase shift search. Each GPS signal has a different C/A code with a different starting time and different Doppler frequency shift. Therefore, to find the signal of a certain satellite, GPS receivers traditionally conduct a two dimensional search, checking each C/A code with different starting time at every possible frequency. “Different starting time,” as used herein, can be interpreted as the result of the phase delay of a C/A code. The acquisition method is thus employed to find the beginning of the C/A code and carrier frequency, in particular, the Doppler frequency shift of the signal. To test for the presence of a signal at a particular frequency and C/A code delay, the GPS receiver is tuned to the frequency, and integration is performed by correlating the incoming signal with a PRN code having a possible amount of phase delay over a time period. If the integration result exceeds a predefined threshold, the C/A code phase shift corresponding to this integration is then detected. If the integration result is below the predefined threshold, the search continues for the C/A code with a next possible delay. Traditionally, each possible delay of the C/A code is obtained by shifting the C/A code by half a chip. Since a C/A code comprises 1023 chips, 2046 delay possibilities may need to be checked for a fixed frequency. After all delay possibilities are checked, the search continues to a next possible frequency.
Once the beginning of the C/A code and the carrier frequency are found, these two parameters are passed to a tracking module. Due to the Doppler effect caused by the motion of satellite and the receiver, the carrier frequency and the C/A code may fluctuate around a center value over time although the C/A code and the carrier frequency has been found by the acquisition module. Therefore, the tracking module is provided to further finely adjust the carrier frequency and the C/A code phase by using two phase-locked loops (or tracking loops) to follow the GPS signal and thus obtaining the navigation data contained in the GPS signal. One tracking loop is used to track the carrier frequency in real time and is referred to as the carrier loop. The other one is used to track the C/A code in real time and is referred to as the code loop. The two loops must be coupled together.
One familiar type of the code loop is an early-late code loop. The early-late code loop includes a Doppler frequency shift removal module, an integration module, a phase detector, a loop filter and a code generator controlled by a code NCO (Numerically Controlled Oscillator). The code loop receives a finely synchronized carrier frequency output from the carrier loop. In the Doppler frequency shift removal module, the Doppler frequency shift can be removed by multiplying this synchronized carrier signal with the input IF signal. The code generator generates an early and a late C/A code. These two codes are the C/A code time shifted typically by approximately one-half-chip time of 0.489 us (1/(2*1.023*106) or less. The early and late codes correlate with the input signal to produce two outputs. The phase detector is adapted to detect the phase error of the two outputs. The loop filter is provided to filter the phase error. A control signal is then generated based on the filtered phase error to adjust a locally generated C/A code generated by the code NCO to match the C/A code of the input signal. The locally generated C/A code is a prompt C/A code and this signal is used as an input to the carrier loop to strip the C/A code from the digitized input IF signal. The prompt C/A code is determined initially by the acquisition module as previously described.
The carrier loop includes a Doppler frequency shift removal module, an integration module, a phase detector, a loop filter and a carrier NCO (Numerically Controlled Oscillator). The carrier NCO generates a carrier frequency according to the value obtained from the acquisition module as previously described. This signal is divided into two paths: a direct one (in-phase channel) and one with a 90-degree phase shift (quadrature channel). In the Doppler frequency shift removal module, these two signals are multiplied with the input IF signal respectively and generate two outputs. The carrier loop further receives the prompt C/A code output from the code loop. In the integration module, the C/A code contained in the two outputs is stripped off by correlating the two outputs with the prompt C/A code respectively. The two phases of the outputs from the integration module are compared against each other through an arctangent comparator, which is a type of phase detector. The arctangent operation is insensitive to the phase transition caused by the navigation data and thus the carrier loop can be considered as a type of a Costas loop. The Costas loop is a phase-locked loop, which is insensitive to phase transition. The output of the comparator is filtered by the loop filter and generates a control signal. This control signal is used to tune the oscillator to generate a carrier frequency to follow the input signal.
There are two important parameters influencing the tracking operation: integration time and the bandwidth of the two loop filters. When the GPS signal is weak, which indicates an indoor movement of the receiver and an insignificant Doppler effect, the integration time may set to be longer to assure a correct peak detection among the integration results and the bandwidth of the tracking loop may set to be narrower because the frequency shift is not severe due to a slight Doppler effect. When the GPS signal is strong, which indicates an outdoor movement of the receiver and a considerable Doppler effect, the integration time should be reduced and the bandwidth may be widened to accommodate a relatively significant frequency shift rate.
In practice, a signal-to-noise ratio (SNR) is used to indicate the signal quality or signal strength. The signal-to-noise ratio is defined as the ratio of the amplitude of the desired signal to the amplitude of noise signals at a given point in time. The larger the number, the better the signal quality. The unit of SNR is usually expressed in dB.
Conventionally, these two parameters, integration time and the bandwidth of the two loop filters, are fixed in tracking module. However, the disadvantage of the unchangeable parameters becomes apparent when the signal strength of the received GPS signal changes. For instance, when the SNR is high, if the integration time and the bandwidth of the tracking loops are not well-chosen and remain constant, the tracking loop will lead to an unlock status and will not be able to follow the GPS signal in real time. When the SNR is low, the tracking loop will also not be able to follow the weak signal due to an unfavorable wide bandwidth of the tracking loop and a relatively short integration time period that might lead to a failure in peak value detection. Advantageously, the present invention is directed to providing methods to estimate the signal-to-noise ratio (SNR) of the received signal and adjust the parameters of tracking loop according to the estimated signal-to-noise ratio.